Run-Time Metaobject Protocols: the Quest for their Holy Application

نویسنده

  • Eric Tanter
چکیده

Run-time MetaObject Protocols (MOPs) are reflective systems that allow objects to be controlled at run time by one or many metaobjects. These metaobjects can then alter the semantics of the execution for the base objects they control. Jumping to the meta level to alter the semantics is powerful but indeed fairly costly. It is therefore desirable to let users fine-tune their run-time MOP according to their specific needs. This is exactly what we are investigating in this PhD thesis: how to design and build an open run-time MOP. But although our intuition (or faith) never fails, it remains hard to definitely answer the realistic question of “what is this really good for?”. Therefore, we are also investigating applications of run-time MOPs that differentiate them from other program transformation approaches. Since we are worried about the applicability of run-time MOPs, all our work is done with the Java programming language, in a fully portable way. 1 What are run-time MOPs? Run-time MetaObject Protocols (MOPs) are reflective systems [11, 7] that allow objects to be controlled at run time by one or many metaobjects. These metaobjects can then alter the semantics of the execution for the objects they control. A classical example is that of a metaobject that controls method invocations on an object to trace them on a debug output. An object controlled by one or more metaobjects is called a reflective object. A reflective class is a class whose instances are reflective objects. From the point of view of the metaobject, the object it controls is called the base object. Characterizing a run-time MOP starts by specifying which language mechanisms are reified. Reifying means making something implicit explicit, that is to say, accessible as a first-class entity. In object-oriented class-based languages, the language mechanisms that can be reified are many: method invocation, field accesses, types checks, object creation, serialization, finalization, etc. Once reified, these mechanisms can be controlled at the metalevel. The set of mechanisms that a MOP is able to reify partially defines its expressiveness. Some simple run-time MOPs only offer the possibility to control method invocation on the receiver

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Metaobject Protocol for Optimizing Application-Specic Run-Time Variability

Just-in-time compilers and their aggressive speculative optimizations reduced the performance gap between dynamic and static languages drastically. To successfully speculate, compilers rely on the program variability observed at run time to be low, and use heuristics to determine when optimization is bene€cial. However, some variability paŠerns are hard to capture with heuristics. Specifically,...

متن کامل

Implementation of an Event Based Run - TimeMetaobject

This paper presents the implementation of a framework to deene eecient dedicated Run Time Metaobject Protocols. Contrary to the classical MOPs approach we only provide a default hidden meta interface and let the programmer entirely free to customize his own metaobject interfaces. This design is simpliied by an event based framework that allows the programmer to transparently link the base level...

متن کامل

Unification of Compile-time and Run-time Metaobject Protocols

In this paper, we propose the unification of compile-time and run-time Metaobject Protocols (MOPs), to improve the efficiency and flexibility of object-oriented operating systems. We also propose a reflective programming system, named Cognac, which employs unified MOPs and provides language and runtime facilities for the Apertos object-oriented distributed operating system. In Cognac, each obje...

متن کامل

Aspect-Oriented Programming using Reflection

What infrastructure is needed to support aspect-oriented software development? To the programmer, we must supply aspect-oriented (sub)languages that are based on the constructs and basic syntax that the programmer is most familiar with, as well as facilities for reifying and manipulating the cross-cutting features of immediate concern. At the implementation level, the aspect specifications must...

متن کامل

A Metalevel Architecture for Dynamism and Reeection in C++

MetaObject Protocols (M.O.P) recently deened for C++ Chi93a] do not t the needs of evolution in DataBases Management Systems (D.B.M.S.). In this paper, we present DyReCT, an extension of C++ that allows instances migration, reeection and run-time classes modiications. Thanks to a metalevel, these new functionalities are transparent for the user. DyReCT should fulll our future needs for data per...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002